package com.business.bean.oa;

import java.util.Date;

import lombok.Getter;
import lombok.Setter;
import net.sf.rose.jdbc.bean.ModelBean;
import net.sf.rose.jdbc.bean.annotation.Column;
import net.sf.rose.jdbc.bean.annotation.Table;
import net.sf.rose.jdbc.bean.annotation.Type;
import net.sf.rose.jdbc.bean.annotation.View;

/**
 * 
 */
@Setter
@Getter
@Table(name = "OA_LEAVE_APPLY", description = "离职申请表")
@View(name = "OA_LEAVE_APPLY_VIEW", description = "离职申请表")
public class LeaveApplyBean extends ModelBean {

	@Column(pk = true, type = Type.定长文本, description = "申请编号", canNull = false, size = 32, policy = "UUID")
	private String applyID = null;

	@Column(type = Type.定长文本, description = "用户编号", size = 32)
	private String userID = null;

	@Column(type = Type.变长文本, description = "工号", size = 10)
	private String workNo = null;

	@Column(type = Type.变长文本, description = "用户姓名", size = 50)
	private String userName = null;

	@Column(type = Type.定长文本, description = "部门编号", size = 32)
	private String departID = null;

	@Column(type = Type.变长文本, description = "部门名称", size = 100)
	private String departName = null;

	@Column(type = Type.变长文本, description = "职务名称", size = 50)
	private String postName = null;

	@Column(type = Type.日期时间, description = "入职日期")
	private Date enterTime = null;

	@Column(type = Type.日期时间, description = "离职日期")
	private Date leaveTime = null;

	/** 1：辞职；2：辞退；3：解雇；4：试用期不合格；5：其它 */
	@Column(type = Type.数字整型, description = "离职类型")
	private int leaveType;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "是否同意离职")
	private int isAgree;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "文件、相关资料、工厂出入证上交")
	private int isDocumentation;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "工作服劳保、工具上交")
	private int isTool;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "工作全部交接完毕")
	private int isWork;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "项目号、资料交接齐全")
	private int isProjectData;

	@Column(type = Type.变长文本, description = "部门其他事项", size = 200)
	private String departOtherItem = null;

	@Column(type = Type.定长文本, description = "部门审核人编号", size = 32)
	private String departCheckUserID = null;

	@Column(type = Type.变长文本, description = "部门审核人姓名", size = 50)
	private transient String departCheckUserName = null;

	@Column(type = Type.日期时间, description = "部门审核时间")
	private Date departCheckTime = null;

	/** 1：是；2：否；3：无*/
	@Column(type = Type.数字整型, description = "退还公司钥匙")
	private int isComkey;

	/** 1：是；2：否；3：无*/
	@Column(type = Type.数字整型, description = "退回公司办公笔记本电脑")
	private int isComputer;

	/** 1：是；2：否；3：无*/
	@Column(type = Type.数字整型, description = "工作牌上交")
	private int isWorkCard;

	/** 1：是；2：否；3：无*/
	@Column(type = Type.数字整型, description = "公司手机上交")
	private int isMobile;

	@Column(type = Type.变长文本, description = "退还公司其他物资", size = 200)
	private String returnOtherGoods = null;

	@Column(type = Type.定长文本, description = "行政部审核人编号", size = 32)
	private String administrationCheckUserID = null;

	@Column(type = Type.日期时间, description = "行政部审核时间")
	private Date administrationCheckTime = null;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "是否住宿人员")
	private int isStay;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "是否搬离宿舍")
	private int isMove;

	/** 1：是；2：否；3：无*/
	@Column(type = Type.数字整型, description = "退还宿舍钥匙")
	private int isBedksy;

	/** 1：是；2：否；3：无*/
	@Column(type = Type.数字整型, description = "被褥床单交接")
	private int isQuilt;

	@Column(type = Type.变长文本, description = "宿舍其他事项", size = 200)
	private String dormOtherItem = null;

	@Column(type = Type.定长文本, description = "宿舍管理员编号", size = 32)
	private String housemasterCheckUserID = null;

	@Column(type = Type.日期时间, description = "宿舍管理员审核时间")
	private Date housemasterCheckTime = null;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "离职结算是否结清")
	private int isWages;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "罚款是否结清")
	private int isFine;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "与公司借款等账务是否结清")
	private int isLendMoney;

	@Column(type = Type.定长文本, description = "考勤负责人编号", size = 32)
	private String attendanceCheckUserID = null;

	@Column(type = Type.日期时间, description = "考勤负责人审核时间")
	private Date attendanceCheckTime = null;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "社保是否扣清，离职后的社保是否全额扣除")
	private int isSocial;

	@Column(type = Type.变长文本, description = "人事部门其他事项", size = 200)
	private String hrOtherItem = null;

	@Column(type = Type.定长文本, description = "人事部门负责人编号", size = 32)
	private String hrCheckUserID = null;

	@Column(type = Type.日期时间, description = "人事部门负责人审核时间")
	private Date hrCheckTime = null;

	@Column(type = Type.数字双精度型, description = "离职结算工资及补贴")
	private double settleWage;

	/** 1：现金；2：银行卡；3：统一结算*/
	@Column(type = Type.数字整型, description = "结算方式")
	private int settleType;

	@Column(type = Type.变长文本, description = "财务部门其他事项", size = 200)
	private String financeOtherItem = null;

	@Column(type = Type.定长文本, description = "财务部门负责人编号", size = 32)
	private String financeCheckUserID = null;

	@Column(type = Type.日期时间, description = "财务部门负责人审核时间")
	private Date financeCheckTime = null;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "是否同意离职")
	private int isAgreeQuit;

	/** 1：是；2：否*/
	@Column(type = Type.数字整型, description = "是否同意财务结算")
	private int isAgreeSettle;

	@Column(type = Type.定长文本, description = "总经理编号", size = 32)
	private String gmCheckUserID = null;

	@Column(type = Type.日期时间, description = "总经理审核时间")
	private Date gmCheckTime = null;


	/** 1：未审批；2：通过；3：不通过 */
	@Column(type = Type.数字整型, description = "离职审核状态")
	private int checkStatus = 0;

	@Column(type = Type.日期时间, description = "最终审核时间")
	private Date checkTime = null;

}
